FIG. 1 is a schematic block diagram of devices communicating over a wireless network 2. A computer device 4 in the form of a mobile terminal communicates with another computer device 6, similarly in the form a mobile terminal. Communication is over the wireless network 2. The mobile terminal 4 operates to establish a communication session with the mobile terminal 6 according to a wireless access technology (for example 2G, 3G, LTE (long term evolution)). According to the appropriate wireless access technology, once a communication session has been established, packets of data can be transmitted at the radio link control level (RLC packets). FIG. 1 shows an RLC packet being transmitted from the mobile terminal 4 on the uplink UL to the network 2, and an RLC acknowledgement packet RLC Ack received from the network 2 on the downlink DL to the mobile terminal 4. These packets are conveyed over a radio bearer at the packet switch layer 2 of the third generation partnership protocol (3GPP).
Data to be transmitted over the packet switch layer 2 can arrive at the mobile terminal 4 from a separate host or application processor 8. For example, the host terminal 8 may take the form of a desktop computer, laptop computer, tablet style computer, etc. The mobile terminal 4 is connected to the application processor 8 in any suitable manner, for example, by a wired (e.g., USB) or wireless connection. For example, the mobile terminal 4 may include a modem and may take the form of a dongle for plugging into the application processor.
The application processor generates data in the form of transport control protocol/internet protocol packets (TCP IP packets). A TCP packet is shown being delivered from the application processor 8 to the mobile terminal 4, and a TCP acknowledgement package TCP Ack is shown as being returned from the mobile terminal 4 to the application processor 8. In the case of acknowledgements, these are generated by the end device 6 or possibly an intermediate entity within the network 2. An RLC acknowledgement is generated by packet switch layer 2, and a TCP acknowledgment is generated by a transport control protocol layer at the end device 6 or intermediate entity (not shown).
As will be evident from FIG. 1, TCP data is delivered to the network over RLC packets. In most cases, each unit of TCP data (for example a packet) will correspond to a unit (for example a packet) of RLC data.
During the TCP data transmission, some packets may be lost or abnormally delayed due to various reasons (for example network congestion, data corruption, routing issues etc.). When this occurs, the sender will notice that the data has not been acknowledged within a certain time out and would attempt to retransmit the data. However, in some cases, the data may simply have been delayed and a premature timeout may occur. This causes unnecessary retransmissions and disturbs the round trip time calculated for the TCP transmission.
In a particular case for a TCP transmission over a 3GPP network, the data may be delayed due a temporary loss of service or bad network conditions.
In the uplink direction, duplicate TCP packets can be retransmitted from the application processor 8 towards the end device 6. On the downlink, duplicate TCP packets which were transmitted by the end device 6 as retransmissions can be received at the application processor 8.